"""
难度：简单
输入一个递增排序的数组和一个数字s，在数组中查找两个数，使得它们的和正好是s。
如果有多对数字的和等于s，则输出任意一对即可。
示例 1：
输入：nums = [2,7,11,15], target = 9
输出：[2,7] 或者 [7,2]
示例 2：
输入：nums = [10,26,30,31,47,60], target = 40
输出：[10,30] 或者 [30,10]
"""

"""
因为数组是升序的，可以使用双指针。left、right 分别指向数组首尾位置。
计算 sum = nums[left] + nums[right]。
如果 sum > target，则 right 进行左移。
如果 sum < target，则 left 进行右移。
如果 sum == target，则返回 [nums[left], nums[right]]
"""

from typing import List


class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        left,right = 0, len(nums)-1
        while left < right:
            sum = nums[right] + nums[left]
            if sum > target:
                right -= 1
            elif sum < target:
                left += 1
            else:
                return nums[left], nums[right]
        return []
        